/**
 * 系统管理--用户管理的单例对象
 */
var MgrUser = {
		id: "managerTable",//表格id
		seItem: null,		//选中的条目
		table: null,
		layerIndex: -1,
		deptid:null
};

/**
 * 初始化表格的列
 */
MgrUser.initColumn = function () {
	var columns = [
		{field: 'selectItem', radio: true},
		{title: 'id', field: 'id', visible: false, align: 'center', valign: 'middle'},
		{title: '账号', field: 'login_name', align: 'center', valign: 'middle', sortable: true},
		{title: '姓名', field: 'name', align: 'center', valign: 'middle', sortable: true},
		{title: '工号', field: 'no', align: 'center', valign: 'middle', sortable: true},
		{title: '部门', field: 'officeName', align: 'center', valign: 'middle'},
		{title: '创建时间', field: 'create_date', align: 'center', valign: 'middle', sortable: true},
		{title: '冻结状态', field: 'useable', align: 'center', valign: 'middle', sortable: true,formatter: operateFormatter}];
	return columns;
};
/**
 * 处理登录状态
 */
function operateFormatter(value,row,index) 
//row 获取这行的值 ，index 获取索引值 
{ 
	if(value=='0'){
		return '禁用';
	}else{
		return '启用';
	}
}

/**
 * 检查是否选中
 */
MgrUser.check = function () {
	var selected = $('#' + this.id).bootstrapTable('getSelections');
	if (selected.length == 0) {
		EA.info("请先选中表格中的某一记录！");
		return false;
	} else {
		MgrUser.seItem = selected[0];
		return true;
	}
};

/**
 * 点击添加管理员
 */
MgrUser.openAddMgr = function () {
	var index = layer.open({
		type: 2,
		title: '添加用户',
		area: ['800px', '560px'], //宽高
		fix: false, //不固定
		maxmin: true,
		content: '/user/form?type=add'
	});
	this.layerIndex = index;
};

/**
 * 点击修改按钮时
 * @param userId 管理员id
 */
MgrUser.openChangeUser = function () {
	if (this.check()) {
		var index = layer.open({
			type: 2,
			title: '编辑用户',
			area: ['800px', '560px'], //宽高
			fix: false, //不固定
			maxmin: true,
			content: '/user/form?type=update&id=' + this.seItem.id
		});
		this.layerIndex = index;
	}
};

/**
 * 点击角色分配
 * @param
 */
MgrUser.roleAssign = function () {
	if (this.check()) {
		var index = layer.open({
			type: 2,
			title: '角色分配',
			area: ['300px', '400px'], //宽高
			fix: false, //不固定
			maxmin: true,
			content: '/user/user_assign/' + this.seItem.id
		});
		this.layerIndex = index;
	}
};

/**
 * 删除用户
 */
MgrUser.delMgrUser = function () {
	if (this.check()) {

		var operation = function(){
			var userId = MgrUser.seItem.id;
			var ajax = new $ax( "/user/delete", function () {
				EA.success("删除成功!");
				MgrUser.table.refresh();
			}, function (data) {
				EA.error("删除失败!" + data.responseJSON.message + "!");
			});
			ajax.set("id", userId);
			ajax.start();
		};

		EA.confirm("是否删除用户" + MgrUser.seItem.name + "?",operation);
	}
};

/**
 * 冻结用户账户
 * @param userId
 */
MgrUser.freezeAccount = function () {
	if (this.check()) {
		var userId = this.seItem.id;
		var ajax = new $ax( "/user/freeze", function (data) {
			EA.success("冻结成功!");
			MgrUser.table.refresh();
		}, function (data) {
			EA.error("冻结失败!" + data.responseJSON.message + "!");
		});
		ajax.set("id", userId);
		ajax.start();
	}
};

/**
 * 解除冻结用户账户
 * @param userId
 */
MgrUser.unfreeze = function () {
	if (this.check()) {
		var userId = this.seItem.id;
		var ajax = new $ax( "/user/unfreeze", function (data) {
			EA.success("解除冻结成功!");
			MgrUser.table.refresh();
		}, function (data) {
			EA.error("解除冻结失败!");
		});
		ajax.set("id", userId);
		ajax.start();
	}
}

/**
 * 重置密码
 */
MgrUser.resetPwd = function () {
	if (this.check()) {
		var userId = this.seItem.id;
		parent.layer.confirm('是否重置密码为111111？', {
			btn: ['确定', '取消'],
			shade: false //不显示遮罩
		}, function () {
			var ajax = new $ax("/user/change", function (data) {
				EA.success("重置密码成功!");
			}, function (data) {
				EA.error("重置密码失败!");
			});
			ajax.set("id", userId);
			ajax.start();
		});
	}
};

MgrUser.resetSearch = function () {
	$("#name").val("");
	MgrUser.deptid=null;
	MgrUser.search();
}

MgrUser.search = function () {
	MgrUser.table.refresh({query: MgrUser.formParams()});
}
/**
 * 查询表单提交参数对象
 * @returns {{}}
 */
MgrUser.formParams = function() {
	var queryData = {};

	queryData['loginName'] = $("#name").val();
	queryData['officeId'] =  MgrUser.deptid;
	return queryData;
}

MgrUser.onClickDept = function (e, treeId, treeNode) {

	if(treeNode.name!="顶级"){
		MgrUser.deptid = treeNode.id;
		MgrUser.search();
	}

};

$(function () {
	var defaultColunms = MgrUser.initColumn();
	var table = new BSTable("managerTable", "/user/list", defaultColunms);
	table.setPaginationType("server");
	//table.setPaginationType("client");
	MgrUser.table = table.init();
	var ztree = new $ZTree("deptTree", "/office/outtree");
	ztree.bindOnClick(MgrUser.onClickDept);
	ztree.init();

});
